package com.ziiwee.reduce.describe.types;

import com.ziiwee.reduce.describe.FieldDescribe;
import com.ziiwee.reduce.describe.TypeDescribe;
import org.springframework.core.ResolvableType;

import java.lang.reflect.Field;
import java.util.Map;

/**
 * @author ziiwee
 * @data 2020/8/12
 */
public interface TypeProviderContext {

    Map<String, TypeDescribe> getCache();

    void putCache(String key, TypeDescribe typed);

    TypeDescribe render(ResolvableType type);

    TypeDescribe renderNew(ResolvableType type);

    FieldDescribe renderField(Field field);

}
